:root{
    --font-size: 12px;
    --line-height: 1.75rem;
}

html {
    /* 組み方向 */
    /* 横 */ writing-mode: horizontal-tb;
    
    column-count: 1;
    orphans: 1;
    widows: 1;
    font-size: var(--font-size);
    line-height: var(--line-height); /* 「1行分」のマージンには1.75remを指定する。pxでは21 */
}

body.p{
    margin-bottom: 0px;
}

/*章(section)関連========================================================*/
/*章*/
section.ltlbg_section{
    /*章の区切りに差し込まれるスペース*/
    margin-bottom: var(--line-height);
}
/*章名称*/
h2.ltlbg_section_name{
    display: block;
    text-align: center;
    font-size: 1rem; 
    font-weight: bold;
    page-break-before: always; 
    /*章タイトルの後、文章が始まるまでのスペース*/
    margin-bottom: var(--line-height);
}


/*中段落(div)関連========================================================*/
/*中段落間マージン*/
div.ltlng_bracket-group{
    margin-bottom: var(--line-height);
}
div.ltlng_discript-group{
    margin-bottom: var(--line-height);
}

/*小段落(p)関連========================================================*/
/*字下げ・括弧類をdataから付与*/
p.ltlbg_bracket{
    margin-left: 0rem;
}
[data-p_header] {
    position: relative;
}
[data-p_header]::before {
    content: attr(data-p_header);
    left: -1rem;
    right: 0;
    bottom: 0;
    white-space: nowrap;
    text-indent: 0;
}
[data-p_footer] {
    position: relative;
}
[data-p_footer]::after {
    content: attr(data-p_footer);
    left: 1rem;
    right: 0;
    bottom: 0;
    white-space: nowrap;
    text-indent: 0;
}

/*特殊文字関連========================================================*/
/*コロン・セミコロン。縦書きのとき回転が必要。横書きのとき幅の調整が必要*/
span.ltlbg_colon {
    display: inline-block;
    text-align: center;
    width: 1rem;
    height: 1rem;
}
span.ltlbg_semicolon {
    display: inline-block;
    text-align: center;
    width: 1rem;
    height: 1rem;
}

/*アへ濁点*/
/*フォントによって位置がずれる。ユーザ側で調整してください*/
span.ltlbg_dakuten::after {
    display: inline-block;
    transform: translate(-0.2rem,0);
    content: "゛";
    letter-spacing: -1rem;
}
/*キチガイ半濁音*/
/*フォントによって位置がずれる。ユーザ側で調整してください*/
span.ltlbg_handakuten::after {
    display: inline-block;
    transform: translate(-0.2rem,0);
    content: "゜";
    letter-spacing: -1rem;
}
/*二倍化。自動変換対象ではないが、～などを伸ばすのにも使える。*/
span.ltlbg_wSize{
    display: inline-block;
    transform-origin: left;
    transform: scale(1.8, 1) translateX(1px);
    margin-right: 1rem;
}
/*踊り字*/
span.ltlbg_odori1::after{
    display: inline-block;
    transform: rotate(90deg);
    content: "〵";
}
span.ltlbg_odori2::before{
    display: inline-block;
    transform: rotate(90deg);
    content: "〳";
}

/*記号二連続...縦書きでは縦中横、横書きでは幅1文字化*/
span.ltlbg_wsymbol{
    display: inline-block;
    text-align: center;
    width: 1rem;
    height: 1rem;
}

/*水平線*/
hr.ltlbg_hr{
    border-top: 1px solid #8c8b8b;
}

/*スペース系の退避========================================================*/
/*横書きの場合はright、縦書きのときはbottomにmarginを差し込む*/
/*半角SP*/
span.ltlbg_sSp{
    margin-right: 0.5rem;
}

/*全角SP*/
span.ltlbg_wSp{
    margin-right: 1.0rem;
}

/*ルビ・傍点関連========================================================*/
/*ルビは基本的に全てグループルビである。
  変換スクリプト側で、母字数とルビ字数の関係からルビのクラスを分けて設定している。
  以下のスタイルは、そのクラスごとに作成する。
  デフォルトでは以下の4つ。
  ltlbg_ruby-mono……母字1文字にルビ1文字の場合
  ltlbg_ruby-same……母字1文字あたりルビ2文字の場合
  ltlbg_ruby-long……母字1文字あたりルビ2文字超過になる場合
  ltlbg_ruby-short……母字1文字あたりルビ2文字未満になる場合
  それぞれにdataを用意している。
  */
[data-ltlbg_ruby-mono] {
    position: relative;
}
[data-ltlbg_ruby-mono]::before {
    content: attr(data-ltlbg_ruby-mono);
    position: absolute;
    left: 0.25rem;
    right: 0;
    bottom: 80%;
    white-space: nowrap;
    text-indent: 0;
    transform-origin: left bottom;
    letter-spacing: 1rem;
    transform: scale(0.5, 0.5);
}

[data-ltlbg_ruby-same] {
    position: relative;
}
[data-ltlbg_ruby-same]::before {
    content: attr(data-ltlbg_ruby-same);
    position: absolute;
    left: 0;
    right: 0;
    bottom: 80%;
    white-space: nowrap;
    text-indent: 0;
    transform-origin: left bottom;
    transform: scale(0.5, 0.5);
}

[data-ltlbg_ruby-short] {
    position: relative;
}
[data-ltlbg_ruby-short]::before {
    content: attr(data-ltlbg_ruby-short);
    position: absolute;
    left: 0;
    right: 0;
    bottom: 80%;
    white-space: nowrap;
    text-indent: 0;
    transform-origin: left bottom;
    transform: scale(0.5, 0.5);
}

[data-ltlbg_ruby-long] {
    position: relative;
}
[data-ltlbg_ruby-long]::before {
    content: attr(data-ltlbg_ruby-long);
    position: absolute;
    left: 0;
    right: 0;
    bottom: 80%;
    white-space: nowrap;
    text-indent: 0;
    transform-origin: left bottom;
    transform: scale(0.5, 0.5);
}

/*特殊合字========================================================*/
/*forceGouji1と2で1文字を作ります。
  偏と旁の比率はユーザ側でいじってください。
  複数必要な場合は増やしてください。*/
span.ltlbg_forceGouji1{
    transform-origin: center right;
    transform: scale(0.6,1 )  translate(-0.7rem,0);
    display: inline-block;    
}
span.ltlbg_forceGouji2{
    transform-origin: center left;
    transform: scale(0.8,1 ) translate(-0.8rem,0);
    display: inline-block;
    margin-right: -1rem;
}
